import pdfplumber

'''
extract_tables_from_pdf('./chat_with_rag/Knowledge_db/stuhandbook.pdf')

传入PDF地址,读取PDF中的表格,返回表格给 tables 列表
共有 {len(tables)} 个表格
运行时间较长
#               我累啦╰（‵□′）╯

'''''''''''''''''''''''''''''''''''''''''''''''

def extract_tables_from_pdf(pdf_path):
    tables = []
    with pdfplumber.open(pdf_path) as pdf:
        for page in pdf.pages:
            table = page.extract_table()
            if table:
                tables.append(table)
    return tables

# 测试用使用函数,接收全部表格
tables = extract_tables_from_pdf('./chat_with_rag/Knowledge_db/stuhandbook.pdf')

#print(f"共找到 {len(tables)} 个表格")
#输出每个表格
for i, table in enumerate(tables):
     print(f"第 {i + 1} 个表格：")
     print(table)


'''
以下注释用于讲解该函数原理

这段代码是用来从PDF文件中提取表格数据的。
首先,我们导入了pdfplumber库,这是一个用于处理PDF文件的Python库。

然后,我们定义了一个名为extract_tables_from_pdf的函数,该函数接受一个参数pdf_path,表示PDF文件的路径。
在函数内部,我们创建了一个名为tables的空列表,用于存储提取到的表格数据。
接下来,我们使用pdfplumber.open()函数打开PDF文件,并遍历其中的每一页。
——>  对于每一页,我们调用page.extract_table()方法来提取表格数据。如果提取到了表格数据(即table不为空),我们将其添加到tables列表中。

最后,函数返回tables列表,其中包含了从PDF文件中提取到的所有表格数据。'''
